﻿#region Using Directives

    using System;

    using Csla;

    using MarketPulse.BusinessLogic.Core;

#endregion

namespace MarketPulse.BusinessLogic.Common
{
    /// <summary>
    /// This class represents a read only instance of a PaymentType within the system.
    /// </summary>
    [Serializable]
    [Csla.Server.ObjectFactory("MarketPulse.DataAccess.Factory.PaymentTypeFactory, MarketPulse.DataAccess.Factory", "FetchInfo")]
    public class PaymentTypeInfo : MarketPulseReadOnlyBase<PaymentTypeInfo>
    {
        #region Member Variables

            /// <summary>A human readable label for this PaymentType</summary>
            public static PropertyInfo<string> mPaymentTypeLabelProperty = RegisterProperty<string>(p => p.Label);

        #endregion

        #region Constructors

            /// <summary>
            /// Default constructor is private in order to (try to) enforce construction
            /// only via the static factory methods provided.
            /// </summary>
            private PaymentTypeInfo()
            {
            }

        #endregion

        #region Properties

            /// <summary>A human readable label for this PaymentType</summary>
            public string Label { get { return GetProperty(mPaymentTypeLabelProperty); } }

        #endregion
    }
}
